/**
 * @name 统一的请求入口
 * @description 所有请求通过这里的方法进入，便于不同环境时对接口请求做统一配置更改
 */

import {transHttpUrl} from '../runtime/index.js'

/**
 * @name 获取jsonData（最常用请求方式）
 * @returns {Promise<Object>}
 */
async function request(method = 'POST',url, data) {
    url = transHttpUrl(url)
    const conf = {
        method: method,
        headers: {
            'Content-Type': 'application/json', // 告诉后端请求体是 JSON 格式
        }
    }
    if(method === 'POST' && data) {
        conf.body = JSON.stringify(data)
    }
    if(method === 'GET' && data) {
        conf.params = data
    }
    const response = await fetch(url, conf)
    debugger
    if (!response.ok) {
        throw new Error(`保存失败：${response.status} ${response.statusText}`);
    }
    return response.json()
}
export const MyRequest = {
    post: (url, data) => request('POST', url, data),
    get: (url, data) => request('GET', url, data),
}

/**
 * @name 上传文件
 * @returns {Promise<void>}
 */
async function uploadFile() {

}

/**
 * @name 获得文件流直接下载
 * @returns {Promise<void>}
 */
async function downStream(url, data = {}) {
    await fetch(url, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
        },
        responseType: 'blob',
        body: JSON.stringify(data)// 将数据转为 JSON 字符串（必须）})
    })
}

/**
 * @name 通过路径下载服务器文件
 */
async function downFileUrl() {

}



